home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 60.zip / BS1 part 60 / Highspeed pascal.adf / Interface / AmigaDOS.pas < prev    next >
Pascal/Delphi Source File  |  1992-01-16  |  11KB  |  487 lines

  1. Unit AmigaDOS;
  2.  
  3. Interface
  4. Uses Timer, Exec;
  5.  
  6. Type
  7.   tDateStamp = Record
  8.           ds_Days: LongInt;
  9.           ds_Minute: LongInt;
  10.           ds_Tick: LongInt;
  11.         End;
  12.  
  13.   tRootNode = Record
  14.           rn_TaskArray: LongInt;
  15.           rn_ConsoleSegment: LongInt;
  16.           rn_Time: tDateStamp;
  17.           rn_RestartSeg: LongInt;
  18.           rn_Info: LongInt;
  19.           rn_FileHandlerSegment: LongInt;
  20.         End;
  21.  
  22.   pMessage = ^tMessage;
  23.   pMsgPort = ^tMsgPort;
  24.   tDosPacket = Record
  25.           dp_Link: pMessage;
  26.           dp_Port: pMsgPort;
  27.           dp_Type: LongInt;
  28.           dp_Res1: LongInt;
  29.           dp_Res2: LongInt;
  30.           dp_Arg1: LongInt;
  31.           dp_Arg2: LongInt;
  32.           dp_Arg3: LongInt;
  33.           dp_Arg4: LongInt;
  34.           dp_Arg5: LongInt;
  35.           dp_Arg6: LongInt;
  36.           dp_Arg7: LongInt;
  37.         End;
  38.  
  39.   tStandardPacket = Record
  40.           sp_Msg: tMessage;
  41.           sp_Pkt: tDosPacket;
  42.         End;
  43.  
  44.   tDosLibrary = Record
  45.           dl_lib: tLibrary;
  46.           dl_Root: Pointer;
  47.           dl_GV: Pointer;
  48.           dl_A2: LongInt;
  49.           dl_A5: LongInt;
  50.           dl_A6: LongInt;
  51.         End;
  52.  
  53.   tProcess = Record
  54.           pr_Task: tTask;
  55.           pr_MsgPort: tMsgPort;
  56.           pr_Pad: Integer;
  57.           pr_SegList: LongInt;
  58.           pr_StackSize: LongInt;
  59.           pr_GlobVec: Pointer;
  60.           pr_TaskNum: LongInt;
  61.           pr_StackBase: LongInt;
  62.           pr_Result2: LongInt;
  63.           pr_CurrentDir: LongInt;
  64.           pr_CIS: LongInt;
  65.           pr_COS: LongInt;
  66.           pr_ConsoleTask: Pointer;
  67.           pr_FileSystemTask: Pointer;
  68.           pr_CLI: LongInt;
  69.           pr_ReturnAddr: Pointer;
  70.           pr_PktWait: Pointer;
  71.           pr_WindowPtr: Pointer;
  72.         End;
  73.  
  74.   tFileSysStartupMsg = Record
  75.           fssm_Unit: LongInt;
  76.           fssm_Device: LongInt;
  77.           fssm_Environ: LongInt;
  78.           fssm_Flags: LongInt;
  79.         End;
  80.  
  81.   tFileInfoBlock = Record
  82.           fib_DiskKey: LongInt;
  83.           fib_DirEntryType: LongInt;
  84.           fib_FileName: Array [0..107] of ShortInt;
  85.           fib_Protection: LongInt;
  86.           fib_EntryType: LongInt;
  87.           fib_Size: LongInt;
  88.           fib_NumBlocks: LongInt;
  89.           fib_Date: tDateStamp;
  90.           fib_Comment: Array [0..79] of ShortInt;
  91.           fib_Reserved: Array [0..35] of ShortInt;
  92.         End;
  93.  
  94.   tFileHandle = Record
  95.           fh_Link: pMessage;
  96.           fh_Port: pMsgPort;
  97.           fh_Type: pMsgPort;
  98.           fh_Buf: LongInt;
  99.           fh_Pos: LongInt;
  100.           fh_End: LongInt;
  101.           fh_Funcs: LongInt;
  102.           fh_Func2: LongInt;
  103.           fh_Func3: LongInt;
  104.           fh_Args: LongInt;
  105.           fh_Arg2: LongInt;
  106.         End;
  107.  
  108.   tInfoData = Record
  109.           id_NumSoftErrors: LongInt;
  110.           id_UnitNumber: LongInt;
  111.           id_DiskState: LongInt;
  112.           id_NumBlocks: LongInt;
  113.           id_NumBlocksUsed: LongInt;
  114.           id_BytesPerBlock: LongInt;
  115.           id_DiskType: LongInt;
  116.           id_VolumeNode: LongInt;
  117.           id_InUse: LongInt;
  118.         End;
  119.  
  120.   tFileLock = Record
  121.           fl_Link: LongInt;
  122.           fl_Key: LongInt;
  123.           fl_Access: LongInt;
  124.           fl_Task: pMsgPort;
  125.           fl_Volume: LongInt;
  126.         End;
  127.  
  128.   tDeviceNode = Record
  129.           dn_Next: LongInt;
  130.           dn_Type: LongInt;
  131.           dn_Task: pMsgPort;
  132.           dn_Lock: LongInt;
  133.           dn_Handler: LongInt;
  134.           dn_StackSize: LongInt;
  135.           dn_Priority: LongInt;
  136.           dn_Startup: LongInt;
  137.           dn_SegList: LongInt;
  138.           dn_GlobalVec: LongInt;
  139.           dn_Name: LongInt;
  140.         End;
  141.  
  142.   tDevInfo = Record
  143.           dvi_Next: LongInt;
  144.           dvi_Type: LongInt;
  145.           dvi_Task: Pointer;
  146.           dvi_Lock: LongInt;
  147.           dvi_Handler: LongInt;
  148.           dvi_StackSize: LongInt;
  149.           dvi_Priority: LongInt;
  150.           dvi_Startup: LongInt;
  151.           dvi_SegList: LongInt;
  152.           dvi_GlobVec: LongInt;
  153.           dvi_Name: LongInt;
  154.         End;
  155.  
  156.   tDosInfo = Record
  157.           di_McName: LongInt;
  158.           di_DevInfo: LongInt;
  159.           di_Devices: LongInt;
  160.           di_Handlers: LongInt;
  161.           di_NetHand: Pointer;
  162.         End;
  163.  
  164.   tDosEnvec = Record
  165.           de_TableSize: LongInt;
  166.           de_SizeBlock: LongInt;
  167.           de_SecOrg: LongInt;
  168.           de_Surfaces: LongInt;
  169.           de_SectorPerBlock: LongInt;
  170.           de_BlocksPerTrack: LongInt;
  171.           de_Reserved: LongInt;
  172.           de_PreAlloc: LongInt;
  173.           de_Interleave: LongInt;
  174.           de_LowCyl: LongInt;
  175.           de_HighCyl: LongInt;
  176.           de_NumBuffers: LongInt;
  177.           de_BufMemType: LongInt;
  178.           de_MaxTransfer: LongInt;
  179.           de_Mask: LongInt;
  180.           de_BootPri: LongInt;
  181.           de_DosType: LongInt;
  182.         End;
  183.  
  184.   tCommandLineInterface = Record
  185.           cli_Result2: LongInt;
  186.           cli_SetName: LongInt;
  187.           cli_CommandDir: LongInt;
  188.           cli_ReturnCode: LongInt;
  189.           cli_CommandName: LongInt;
  190.           cli_FailLevel: LongInt;
  191.           cli_Prompt: LongInt;
  192.           cli_StandardInput: LongInt;
  193.           cli_CurrentInput: LongInt;
  194.           cli_CommandFile: LongInt;
  195.           cli_Interactive: LongInt;
  196.           cli_Background: LongInt;
  197.           cli_CurrentOutput: LongInt;
  198.           cli_DefaultStack: LongInt;
  199.           cli_StandardOutput: LongInt;
  200.           cli_Module: LongInt;
  201.         End;
  202.  
  203.   tDeviceList = Record
  204.           dl_Next: LongInt;
  205.           dl_Type: LongInt;
  206.           dl_Task: pMsgPort;
  207.           dl_Lock: LongInt;
  208.           dl_VolumeDate: tDateStamp;
  209.           dl_LockList: LongInt;
  210.           dl_DiskType: LongInt;
  211.           dl_unused: LongInt;
  212.           dl_Name: LongInt;
  213.         End;
  214.  
  215.   tDosList = Record
  216.           dol_Next: LongInt;
  217.           dol_Type: LongInt;
  218.           dol_Task: pMsgPort;
  219.           dol_Lock: LongInt;
  220.         Case Integer of
  221.         0: (
  222.           dol_handler: Record
  223.           dol_Handler: LongInt;
  224.           dol_StackSize: LongInt;
  225.           dol_Priority: LongInt;
  226.           dol_Startup: LongInt;
  227.           dol_SegList: LongInt;
  228.           dol_GlobVec: LongInt;
  229.           End;
  230.         );
  231.         1: (
  232.           dol_volume: Record
  233.           dol_VolumeDate: tDateStamp;
  234.           dol_LockList: LongInt;
  235.           dol_DiskType: LongInt;
  236.           End;
  237.           dol_Name: LongInt;
  238.         );
  239.         End;
  240.  
  241.   BPTR = LongInt;
  242.   BSTR = LongInt;
  243.   pDosPacket = ^tDosPacket;
  244.   pFileInfoBlock = ^tFileInfoBlock;
  245.   pDosList = ^tDosList;
  246.   pDateStamp = ^tDateStamp;
  247.   pProcess = ^tProcess;
  248.   pCommandLineInterface = ^tCommandLineInterface;
  249.   pInfoData = ^tInfoData;
  250.  
  251.  
  252. Const
  253.   ACTION_LOCATE_OBJECT = $8;
  254.   ACTION_RENAME_OBJECT = $11;
  255.   MODE_NEWFILE = $3EE;
  256.   FIBF_DELETE = $1;
  257.   DE_SIZEBLOCK = $1;
  258.   ACTION_SET_PROTECT = $15;
  259.   SIGBREAKB_CTRL_C = $C;
  260.   ACCESS_READ = $FFFFFFFE;
  261.   ID_KICKSTART_DISK = $4B49434B;
  262.   SIGBREAKB_CTRL_D = $D;
  263.   ERROR_LINE_TOO_LONG = $78;
  264.   ERROR_OBJECT_TOO_LARGE = $CF;
  265.   SIGBREAKB_CTRL_E = $E;
  266.   DLT_DIRECTORY = $1;
  267.   SIGBREAKB_CTRL_F = $F;
  268.   ERROR_NO_FREE_STORE = $67;
  269.   ERROR_DIR_NOT_FOUND = $CC;
  270.   SIGBREAKF_CTRL_C = $1000;
  271.   SIGBREAKF_CTRL_D = $2000;
  272.   SIGBREAKF_CTRL_E = $4000;
  273.   ERROR_BAD_STREAM_NAME = $CE;
  274.   SIGBREAKF_CTRL_F = $8000;
  275.   ACTION_GET_BLOCK = $2;
  276.   ACTION_FREE_LOCK = $F;
  277.   ID_NO_DISK_PRESENT = $FFFFFFFF;
  278.   DOSNAME = 'dos.library';
  279.   ERROR_INVALID_RESIDENT_LIBRARY = $7A;
  280.   ACTION_FINDOUTPUT = $3EE;
  281.   ACCESS_WRITE = $FFFFFFFF;
  282.   BYTESPERLONG = $4;
  283.   ACTION_READ = $52;
  284.   ACTION_TIMER = $1E;
  285.   OFFSET_BEGINING = $FFFFFFFF;
  286.   ACTION_EVENT = $6;
  287.   ACTION_FLUSH = $1B;
  288.   ACTION_FINDINPUT = $3ED;
  289.   ERROR_OBJECT_WRONG_TYPE = $D4;
  290.   ACTION_WAIT_CHAR = $14;
  291.   DE_NUMHEADS = $3;
  292.   ERROR_OBJECT_NOT_FOUND = $CD;
  293.   RETURN_OK = $0;
  294.   SHARED_LOCK = $FFFFFFFE;
  295.   ACTION_DISK_INFO = $19;
  296.   DE_BLKSPERTRACK = $5;
  297.   ACTION_WRITE = $57;
  298.   DE_MASK = $E;
  299.   ACTION_SEEK = $3F0;
  300.   DE_RESERVEDBLKS = $6;
  301.   ERROR_NO_DISK = $E2;
  302.   FIBB_SCRIPT = $6;
  303.   ERROR_FILE_NOT_OBJECT = $79;
  304.   BITSPERLONG = $20;
  305.   ACTION_INFO = $1A;
  306.   TICKS_PER_SECOND = $32;
  307.   FIBF_SCRIPT = $40;
  308.   ERROR_DISK_WRITE_PROTECTED = $D6;
  309.   ERROR_READ_PROTECTED = $E0;
  310.   BITSPERBYTE = $8;
  311.   ERROR_TASK_TABLE_FULL = $69;
  312.   ACTION_CURRENT_VOLUME = $7;
  313.   ID_UNREADABLE_DISK = $42414400;
  314.   ID_NOT_REALLY_DOS = $4E444F53;
  315.   ACTION_DIE = $5;
  316.   ACTION_DISK_CHANGE = $21;
  317.   ACTION_TRUNCATE = $3FE;
  318.   DOSTRUE = $FFFFFFF6;
  319.   ERROR_WRITE_PROTECTED = $DF;
  320.   ACTION_DISK_TYPE = $20;
  321.   ERROR_ACTION_NOT_KNOWN = $D1;
  322.   ERROR_COMMENT_TOO_BIG = $DC;
  323.   ACTION_SET_DATE = $22;
  324.   FIBB_READ = $3;
  325.   DLT_DEVICE = $0;
  326.   ACTION_END = $3EF;
  327.   ACTION_INHIBIT = $1F;
  328.   RETURN_FAIL = $14;
  329.   FIBF_READ = $8;
  330.   ID_DOS_DISK = $444F5300;
  331.   DE_UPPERCYL = $A;
  332.   ERROR_DISK_NOT_VALIDATED = $D5;
  333.   MODE_READWRITE = $3EC;
  334.   ERROR_INVALID_COMPONENT_NAME = $D2;
  335.   OFFSET_END = $1;
  336.   FIBB_WRITE = $2;
  337.   MININT = $80000000;
  338.   DE_PREFAC = $7;
  339.   RETURN_ERROR = $A;
  340.   ACTION_EXAMINE_NEXT = $18;
  341.   MAXINT = $7FFFFFFF;
  342.   ERROR_NO_DEFAULT_DIR = $C9;
  343.   ACTION_NIL = $0;
  344.   ACTION_WRITE_PROTECT = $3FF;
  345.   FIBF_WRITE = $4;
  346.   ERROR_SEEK_ERROR = $DB;
  347.   ACTION_RENAME_DISK = $9;
  348.   ACTION_COPY_DIR = $13;
  349.   ACTION_SCREEN_MODE = $3E2;
  350.   ERROR_NO_MORE_ENTRIES = $E8;
  351.   DE_MAXTRANSFER = $D;
  352.   ID_VALIDATING = $51;
  353.   DE_BOOTPRI = $F;
  354.   ACTION_FINDUPDATE = $3EC;
  355.   ACTION_MORE_CACHE = $12;
  356.   ERROR_RENAME_ACROSS_DEVICES = $D7;
  357.   ERROR_TOO_MANY_LEVELS = $D9;
  358.   DE_SECSPERBLK = $4;
  359.   ERROR_DEVICE_NOT_MOUNTED = $DA;
  360.   DE_INTERLEAVE = $8;
  361.   FIBB_ARCHIVE = $4;
  362.   DE_SECORG = $2;
  363.   DE_DOSTYPE = $10;
  364.   EXCLUSIVE_LOCK = $FFFFFFFF;
  365.   ERROR_DISK_FULL = $DD;
  366.   RETURN_WARN = $5;
  367.   ACTION_EXAMINE_OBJECT = $17;
  368.   FIBB_PURE = $5;
  369.   FIBF_ARCHIVE = $10;
  370.   ID_VALIDATED = $52;
  371.   ACTION_CREATE_DIR = $16;
  372.   FIBF_PURE = $20;
  373.   ACTION_SET_MAP = $4;
  374.   ERROR_DELETE_PROTECTED = $DE;
  375.   OFFSET_CURRENT = $0;
  376.   ERROR_INVALID_LOCK = $D3;
  377.   ACTION_READ_RETURN = $3E9;
  378.   DOSFALSE = $0;
  379.   DLT_VOLUME = $2;
  380.   DE_NUMBUFFERS = $B;
  381.   ERROR_OBJECT_EXISTS = $CB;
  382.   DE_MEMBUFTYPE = $C;
  383.   DE_BUFMEMTYPE = $C;
  384.   ACTION_SET_COMMENT = $1C;
  385.   ACTION_PARENT = $1D;
  386.   MODE_OLDFILE = $3ED;
  387.   ERROR_OBJECT_IN_USE = $CA;
  388.   FIBB_EXECUTE = $1;
  389.   ERROR_DIRECTORY_NOT_EMPTY = $D8;
  390.   ERROR_NOT_A_DOS_DISK = $E1;
  391.   ID_WRITE_PROTECTED = $50;
  392.   OFFSET_BEGINNING = $FFFFFFFF;
  393.   ACTION_DELETE_OBJECT = $10;
  394.   FIBF_EXECUTE = $2;
  395.   ACTION_WRITE_RETURN = $3EA;
  396.   FIBB_DELETE = $0;
  397.   DE_TABLESIZE = $0;
  398.   DE_LOWCYL = $9;
  399.  
  400.  
  401. Function Open
  402.          (name: String;
  403.           accessMode: LongInt): LongInt;
  404.  
  405. Procedure Close_ (file_: LongInt);
  406. Function Read_
  407.          (file_: LongInt;
  408.           buffer: Pointer;
  409.           length: LongInt): LongInt;
  410.  
  411. Function Write_
  412.          (file_: LongInt;
  413.           buffer: Pointer;
  414.           length: LongInt): LongInt;
  415.  
  416. Function Input_: LongInt;
  417. Function Output_: LongInt;
  418. Function Seek_
  419.          (file_: LongInt;
  420.           position: LongInt;
  421.           offset: LongInt): LongInt;
  422.  
  423. Function DeleteFile (name: String): Boolean;
  424. Function Rename_
  425.          (oldName: String;
  426.           newName: String): Boolean;
  427.  
  428. Function Lock
  429.          (name: String;
  430.           type_: LongInt): LongInt;
  431.  
  432. Procedure UnLock (lock: LongInt);
  433. Function DupLock (lock: LongInt): LongInt;
  434. Function Examine
  435.          (lock: LongInt;
  436.           fileInfoBlock: pFileInfoBlock): Boolean;
  437.  
  438. Function ExNext
  439.          (lock: LongInt;
  440.           fileInfoBlock: pFileInfoBlock): Boolean;
  441.  
  442. Function Info
  443.          (lock: LongInt;
  444.           parameterBlock: pInfoData): Boolean;
  445.  
  446. Function CreateDir (name: String): LongInt;
  447. Function CurrentDir (lock: LongInt): LongInt;
  448. Function IoErr: LongInt;
  449. Function CreateProc
  450.          (name: pShortInt;
  451.           pri: LongInt;
  452.           segList: LongInt;
  453.           stackSize: LongInt): pMsgPort;
  454.  
  455. Procedure Exit_ (returnCode: LongInt);
  456. Function LoadSeg (fileName: String): LongInt;
  457. Function UnLoadSeg (segment: LongInt): Boolean;
  458. Function DeviceProc (name: String): pMsgPort;
  459. Function SetComment
  460.          (name: String;
  461.           comment: String): Boolean;
  462.  
  463. Function SetProtection
  464.          (name: String;
  465.           mask: LongInt): Boolean;
  466.  
  467. Function DateStamp (date: pDateStamp): pDateStamp;
  468. Procedure Delay (timeout: LongInt);
  469. Function WaitForChar
  470.          (file_: LongInt;
  471.           timeout: LongInt): Boolean;
  472.  
  473. Function ParentDir (lock: LongInt): LongInt;
  474. Function IsInteractive (file_: LongInt): Boolean;
  475. Function Execute
  476.          (string_: String;
  477.           file_: LongInt;
  478.           file_: LongInt): Boolean;
  479.  
  480.  
  481.  
  482. Function BADDR (bval: BPTR): APTR;
  483. Function MKBADDR (addr: Pointer): BPTR;
  484.  
  485.  
  486. End.
  487.